package com.xyy.saas.payment.pojo.dto;

import com.xyy.saas.payment.cores.vo.BeneficiaryInfoVo;
import com.xyy.saas.payment.cores.vo.ContactInfo;
import com.xyy.saas.payment.cores.vo.ShareHolderInfoVo;

import java.util.List;
import java.util.Map;

public class UserDto {

    /** 支付中台的userId", name = "userId */
    private String userId;
    /**
     * 可选值："business" 对公，"customer" 对私。对公用户请填写 "business"
     */
    /**
     * 由壹账通生成。此参数仅在 operate_type 为 01 时需要填写
     */
    private String type;
    /** 用户在ping++的编号 */
    private String accNo;
    /**
     * 00:新增，01:修改
     */
    private String operateType;
    /**
     * key: 101：个人身份证正面，102：个人身份证反面，201：企业证件照片，202：法人身份证正面，203：法人身份证反面。对公用户需使用 201、202、203 上传三次
     * value: 图片 BASE64 编码，编码后的大小不能超过 1M，具体视场景而定（注意：请删除开头的：data:image/{{PIC_FMT}};base64, 字符串之后再提交）
     */
    private Map<String, String> picMap;
    /**
     * 可选值：png、jpg
     */
    /** 图片格式", name = "picFmt */
    private String picFmt;
    /** 企业联系人", name = "ContactInfos */
    private List<ContactInfo> contactInfos;
    /** 子商户应用名称", name = "displayName */
    private String displayName;
    /** 子商户简称", name = "description */
    private String description;
    /** 公司名称", name = "name */
    private String name;
    /** 法人手机号", name = "mobile */
    private String mobile;
    /** 证件信息", name = "identityInfo */
    private IdentityInfo identityInfo;
    /** 办公地址 */
    private String address;
    /** 联系邮箱 */
    private String email;
    /** 性别 */
    private String gender;
    /**
     * 对于在壹账通侧开户失败的即 open_account_status 为 failed 状态的 customer（个人）、business（企业）用户可以在上传完证件后（business 类型还需额外新增联系人）可以再调用此接口重新请求壹账通审核开户。
     * 00新增 01修改
     */
    /** 是否更新user */
    private String updateUser;
    /** 业务方id */
    private String businessId;
    private String accountType;
    private String businessIdType;
    private String thirdUserId;
    private SettleAccountDto settleAccountDto;

    /**
     * 股东信息 最多传5个
     */
    private List<ShareHolderInfoVo> shareHolderInfos;

    /**
     * 受益人信息 最多传5个
     */
    private List<BeneficiaryInfoVo> beneficiaryInfos;

    /**
     * 企业类型
     */
    private String merchantCategory;

    /**
     * 企业联系电话
     */
    private String enterprisePhone;

    private String extraMap;

    public String getUserId() {
        return userId;
    }

    public void setUserId(String userId) {
        this.userId = userId;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public String getAccNo() {
        return accNo;
    }

    public void setAccNo(String accNo) {
        this.accNo = accNo;
    }

    public String getOperateType() {
        return operateType;
    }

    public void setOperateType(String operateType) {
        this.operateType = operateType;
    }

    public String getPicFmt() {
        return picFmt;
    }

    public void setPicFmt(String picFmt) {
        this.picFmt = picFmt;
    }

    public List<ContactInfo> getContactInfos() {
        return contactInfos;
    }

    public void setContactInfos(List<ContactInfo> contactInfos) {
        this.contactInfos = contactInfos;
    }

    public String getDisplayName() {
        return displayName;
    }

    public void setDisplayName(String displayName) {
        this.displayName = displayName;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getMobile() {
        return mobile;
    }

    public void setMobile(String mobile) {
        this.mobile = mobile;
    }

    public IdentityInfo getIdentityInfo() {
        return identityInfo;
    }

    public void setIdentityInfo(IdentityInfo identityInfo) {
        this.identityInfo = identityInfo;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public String getUpdateUser() {
        return updateUser;
    }

    public void setUpdateUser(String updateUser) {
        this.updateUser = updateUser;
    }

    public String getBusinessId() {
        return businessId;
    }

    public void setBusinessId(String businessId) {
        this.businessId = businessId;
    }

    public String getAccountType() {
        return accountType;
    }

    public void setAccountType(String accountType) {
        this.accountType = accountType;
    }

    public String getBusinessIdType() {
        return businessIdType;
    }

    public void setBusinessIdType(String businessIdType) {
        this.businessIdType = businessIdType;
    }

    public Map<String, String> getPicMap() {
        return picMap;
    }

    public void setPicMap(Map<String, String> picMap) {
        this.picMap = picMap;
    }

    public String getThirdUserId() {
        return thirdUserId;
    }

    public void setThirdUserId(String thirdUserId) {
        this.thirdUserId = thirdUserId;
    }

    public SettleAccountDto getSettleAccountDto() {
        return settleAccountDto;
    }

    public void setSettleAccountDto(SettleAccountDto settleAccountDto) {
        this.settleAccountDto = settleAccountDto;
    }

    public String getExtraMap() {
        return extraMap;
    }

    public void setExtraMap(String extraMap) {
        this.extraMap = extraMap;
    }

    public List<ShareHolderInfoVo> getShareHolderInfos() {
        return shareHolderInfos;
    }

    public void setShareHolderInfos(List<ShareHolderInfoVo> shareHolderInfos) {
        this.shareHolderInfos = shareHolderInfos;
    }

    public List<BeneficiaryInfoVo> getBeneficiaryInfos() {
        return beneficiaryInfos;
    }

    public void setBeneficiaryInfos(List<BeneficiaryInfoVo> beneficiaryInfos) {
        this.beneficiaryInfos = beneficiaryInfos;
    }

    public String getMerchantCategory() {
        return merchantCategory;
    }

    public void setMerchantCategory(String merchantCategory) {
        this.merchantCategory = merchantCategory;
    }

    public String getEnterprisePhone() {
        return enterprisePhone;
    }

    public void setEnterprisePhone(String enterprisePhone) {
        this.enterprisePhone = enterprisePhone;
    }
}
